package com.echoclient.mutiClient;

import io.netty.channel.Channel;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * @Author: jia
 * @Descirption:
 * @Date: 2018/5/3 12:08
 * @Modified By:
 */


public class Start {
    public static void main(String[] args) throws InterruptedException {
        MutiClient mutiClient = new MutiClient();
        mutiClient.init(5);
        //读取控制台的输入
        InputStreamReader inputStreamReader = new InputStreamReader(System.in);
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
        while (true) {
            try {
                String input = bufferedReader.readLine();
                //获取一个连接
                Channel channel = mutiClient.nextChannel();
                //writeAndFlush是线程安全的方法，而channel重连方法如果不加
                //synchronized字段是非线程安全的，因为获取一个线程后，有可能有好几个
                //channel没有活跃，所以需要重连，而所有的chennel重连用的是同一个方法，
                //所以会出现线程安全问题
                channel.writeAndFlush(channel.toString()+input);

            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}
